# -*- coding: utf-8 -*-
# for python3
'''
@file  favorite2urllist.py
@brief favorite.lst から urllist.json を作成する

Created on 2011/06/14

@author: yohei

@usage
python3 favorite2urllist.py -i favoriteファイルパス -o urllistファイルパス -r ルートURL

設定ファイルの記述例
[
	{"url": "http://.....", "params":{"name":"user000", "pass":"password"},"encode":"euc_jp","filename":"album.html", },
				:
				:
]
'''
import codecs
import json
from optparse import OptionParser
import os.path
import sys

def main(argv):
	# オプション解析
	parser = OptionParser('favorite 2 urllist')
	parser.add_option('-i', '--input', action='store', type='string', dest='in_path', help='input path')
	parser.add_option('-o', '--output', action='store', type='string', dest='out_path', help='output path')
	parser.add_option('-r', '--root', action='store', type='string', dest='root_url', help='root url')
	(options, args) = parser.parse_args(argv)

	# オプションエラーチェック
	if not options.in_path:
		parser.print_help()
		parser.error('引数 -i が指定されていない')

	if not options.out_path:
		parser.print_help()
		parse.error('引数 -o が指定されていない')

	if not options.root_url:
		parser.print_help()
		parse.error('引数 -r が指定されていない')

	# 読み込む
	f = open(options.in_path, 'r')
	in_paths = f.read().split('\n')
	f.close()
	
	# output 作成
	outdata = []
	for in_path in in_paths:
		data = {
				'url' : options.root_url + in_path,
				'params' : {},
				'encode' : 'utf-8',
				'filename' : os.path.split(in_path)[1],
			}
		outdata.append(data)

	# 出力
	f = open(options.out_path, 'w')
	json.dump(outdata, f)
	f.close()
	
if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    main(sys.argv)
